﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidades;
using AccesoADatos;

namespace LogicaDeNegocios
{
    public class ExamenesPreguntas
    {
       #region Campos

        AuxiliarExamenPregunta Auxiliar;

        #endregion

        #region Constructor

        public ExamenesPreguntas()
        {
            Auxiliar = new AuxiliarExamenPregunta();
        }

        #endregion

        #region Métodos

        #region Agregar Examen Pregunta

        public bool Agregar(ExamenPregunta nuevoExamenPregunta)
        {
            bool resultado = false;

            try
            {
                var examenPreguntaAgregada = Auxiliar.Agregar(nuevoExamenPregunta);

                if (examenPreguntaAgregada != null)
                {
                    resultado = true;
                }

            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        #endregion

        #region Modificar Examen Pregunta

        public bool Modificar(ExamenPregunta examenPreguntaAModificar)
        {
            bool resultado = false;

            try
            {
                Auxiliar.Modificar(examenPreguntaAModificar);
                resultado = true;
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }
        #endregion

        #region Eliminar Examen Pregunta

        public bool Eliminar(ExamenPregunta examenPreguntaAEliminar)
        {
            bool resultado = false;

            try
            {
                Auxiliar.Eliminar(examenPreguntaAEliminar);
                resultado = true;
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        #endregion

        #region Obtener Lista de Preguntas enviadas al estudiante

        public List<ExamenPregunta> Listar(string examenCodigo = "", string preguntaExamenClave = "", short preguntaHabilidadId = 0, short preguntaId = 0)
        {
            List<ExamenPregunta> resultado = null;

            try
            {
                resultado = Auxiliar.Listar(examenCodigo, preguntaExamenClave, preguntaHabilidadId, preguntaId);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            return resultado;
        }

        #endregion

        #region Registra pregunta aleatoria enviada al usuario
        public bool RegistrarPreguntaExamen(string codigoExamen, PreguntaAleatoria pregunta, DateTime fechaHoraInicio)
        {

            ExamenPregunta ep = new ExamenPregunta
            {
                ExamenesCodigos = codigoExamen,
                PreguntasExamenesClave = pregunta.ExamenesClave,
                PreguntasHabilidadesId = pregunta.HabilidadesId,
                PreguntasId = pregunta.Id,
                ConsecutivosRespuestasUsuario = string.Empty,
                RespuestaAprobada = false,
                FechaHoraInicio = fechaHoraInicio,
                FechaHoraFinal = fechaHoraInicio.AddYears(1)
            };

            bool resultado = this.Agregar(ep);
            return resultado;
        }
        #endregion

        
        #endregion

    }
}
